package com.wicket.okrbff.web.contorller;

import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrbff.biz.service.ReportService;
import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrbff.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.wicket.okrapp.integration.FwAppSystemTestDomainClient;
import com.wicket.okrapp.integration.FwAppReportClient;
import com.wicket.okrapp.integration.dto.ImplementReportTaskOperateElementJudgeComRespDto;
import com.wicket.okrapp.integration.dto.ImplementReportTaskOperateElementJudgeComReqDto;
import com.wicket.okrapp.integration.dto.ImplementSingleContentGenReportTaskComRespDto;
import com.wicket.okrapp.integration.dto.ImplementSingleContentGenReportTaskComReqDto;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrapp.integration.dto.ImplementGiveGracePeriodTimeComRespDto;
import com.wicket.okrapp.integration.dto.ImplementGiveGracePeriodTimeComReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Api(value = "Report", tags = { "Report" })
@RestController
// @RequestMapping("/oms/report/")
public class ReportController {

  @Autowired
  ReportService reportService;
/**
   * B3-执行单内容汇报任务调度
   * gen by moon at 6/6/2023, 6:36:10 AM
   */
    @PostMapping("/oms/report/implementSingleContentGenReportTask")
    @ApiOperation(value = "B3-执行单内容汇报任务调度", response = OkrResult.class)
    public OkrResult<BffImplementSingleContentGenReportTaskRespDto> implementSingleContentGenReportTask(@RequestBody(required=false) @Validated BffImplementSingleContentGenReportTaskReqDto reqDTO){
        return OkrResult.success(reportService.implementSingleContentGenReportTask(reqDTO));
    }
/**
   * B3执行给予宽限时间量
   * gen by moon at 1/6/2024, 11:51:56 PM
   */
    @PostMapping("/oms/report/implementGiveGracePeriodTime")
    @ApiOperation(value = "B3执行给予宽限时间量", response = OkrResult.class)
    public OkrResult<BffImplementGiveGracePeriodTimeRespDto> implementGiveGracePeriodTime(@RequestBody(required=false) @Validated BffImplementGiveGracePeriodTimeReqDto reqDTO){
        return OkrResult.success(reportService.implementGiveGracePeriodTime(reqDTO));
    }
/**
   * B3执行单内容汇报任务补偿或补报处理
   * gen by moon at 1/7/2024, 9:34:02 PM
   */
    @PostMapping("/oms/report/implementSingleContentReportTaskCompensateOrFillReport")
    @ApiOperation(value = "B3执行单内容汇报任务补偿或补报处理", response = OkrResult.class)
    public OkrResult<BffImplementSingleContentReportTaskCompensateOrFillReportRespDto> implementSingleContentReportTaskCompensateOrFillReport(@RequestBody(required=false) @Validated BffImplementSingleContentReportTaskCompensateOrFillReportReqDto reqDTO){
        return OkrResult.success(reportService.implementSingleContentReportTaskCompensateOrFillReport(reqDTO));
    }
}
